home *** CD-ROM | disk | FTP | other *** search
/ Amiga Developer CD 2.1 / Amiga Developer CD v2.1.iso / CD32 / CD32_Support / examples / SA_Examples / lowlevel / TimerInt / timerint.h < prev    next >
Encoding:
C/C++ Source or Header  |  1993-08-31  |  3.1 KB  |  98 lines

  1. /*
  2.  * Constants
  3.  */
  4.  
  5. #define PROGRAM_NAME "TimerInt"         /* Program name */
  6.  
  7. #define KICKSTART_VERSION 40            /* Minimum Kickstart version */
  8. #define WORKBENCH_VERSION 40            /* Minimum Workbench version */
  9.  
  10. #define GUI_TYPEFACE "topaz.font"       /* Typeface for GUI */
  11. #define GUI_TYPESIZE 8                  /* Typesize for GUI */
  12.  
  13. #define GUI_INTERVAL_ID 1
  14. #define GUI_DEVIATION_ID 2
  15. #define GUI_MODE_ID 3
  16. #define GUI_START_ID 4
  17. #define GUI_STOP_ID 5
  18.  
  19. #define GUI_MODE_ONESHOT_CODE 0         /* Code for one-shot mode */
  20. #define GUI_MODE_CONTINUOUS_CODE 1      /* Code for continuous mode */
  21.  
  22. #define TIMERINT_COOKIE 0xC0EDBABE      /* Cookie for interrupt data */
  23.  
  24. /*
  25.  * Prototypes
  26.  */
  27.  
  28. /* from main.c */
  29. void main(int argc,char *argv[]);
  30. void goodbye(int returnCode);
  31.  
  32. /* from gui.c */
  33. BOOL guiOpen(void);
  34. void guiClose(void);
  35. void guiLoop(void);
  36.  
  37. /* from timer.c */
  38. void timerStart(void);
  39. void timerStop(void);
  40. void __asm __interrupt __saveds timerInterrupt(register __a1 APTR intData);
  41.  
  42. /*
  43.  * Globals
  44.  */
  45.  
  46. #ifdef MAIN
  47.  
  48. struct Library *IntuitionBase=NULL,             /* intuition.library base */
  49.     *GadtoolsBase=NULL,                         /* gadtools.library base */
  50.     *TimerBase=NULL,                            /* timer.device base */
  51.     *LowLevelBase=NULL;                         /* lowlevel.library base */
  52.  
  53. struct MsgPort *timerPort=NULL;                 /* timer.device reply port */
  54. struct timerequest *timerRequest=NULL;          /* timer.device I/O request */
  55.  
  56. struct Window *window=NULL;
  57. void *visualInfo=NULL;
  58. struct Gadget *gadgetList=NULL,
  59.     *intervalGadget, *deviationGadget, *modeGadget,
  60.     *startGadget, *stopGadget;
  61.  
  62. APTR timerIntHandle=NULL;                       /* Timer interrupt handle */
  63. LONG timerInterval;                             /* Timer interval (ms) */
  64. BOOL timerContinuous=FALSE;                     /* Continuous timer? */
  65. ULONG timerIntBadData=0L;                       /* Counter for calls to
  66.                                                    timer interrupt handler
  67.                                                    with bad data */
  68. BYTE timerSignal=-1;                            /* Timer interrupt signal
  69.                                                    bit */
  70. struct Task *mainTask;                          /* Main task */
  71. struct timeval startTime, stopTime;             /* Start and stop time as
  72.                                                    measured by timer.device */
  73. LONG deviation=0L;                              /* Deviation */
  74.  
  75. #else /* MAIN */
  76.  
  77. extern struct Library *IntuitionBase, *GadtoolsBase, *TimerBase, *LowLevelBase;
  78.  
  79. extern struct MsgPort *timerPort;
  80. extern struct timerequest *timerRequest;
  81.  
  82. extern struct Window *window;
  83. extern void *visualInfo;
  84. extern struct Gadget *gadgetList,
  85.     *intervalGadget, *deviationGadget, *modeGadget,
  86.     *startGadget, *stopGadget;
  87.  
  88. extern APTR timerIntHandle;
  89. extern LONG timerInterval;
  90. extern BOOL timerContinuous;
  91. extern ULONG timerIntBadData;
  92. extern BYTE timerSignal;
  93. extern struct Task *mainTask;
  94. extern struct timeval startTime, stopTime;
  95. extern ULONG deviation;
  96.  
  97. #endif /* MAIN */
  98.